Cloud Run 是一個全託管的服務,提供一個高可用且方便管理的平台來執行容器化的應用,Cloud Run 可以跟其他Google Cloud 服務非常完美的結合,Cloud Run 讓開發人員可以把大部分的時間跟淨利放在應用程式的程式碼撰寫,只需要少量的配置不需要建立 Cluster 或是管理 Infra 就可以使用 Cloud Run
我們還是有請 Gemini 來為我們做一個簡單的說明
Cloud Run 是 GCP 提供的一項無伺服器計算服務,允許開發人員快速部署和擴展容器化應用程序。它的主要特點包括:
- 自動擴展:根據流量自動調整實例數量,無需手動配置。
- 按需付費:只對實際運行的資源收費,閒置時不產生費用。
- 支持多種編程語言:可運行任何打包為容器的應用。
- 簡化部署:支持從容器註冊表或源代碼直接部署。
- HTTPS 端點:自動為每個服務提供安全的 HTTPS 端點。
- 與其他 GCP 服務整合:可輕鬆連接到 Cloud SQL、Cloud Storage 等服務。
Cloud Run 適用於構建微服務、API 後端、Web 應用等場景。它讓開發人員專注於編寫代碼,而無需管理底層基礎設施,從而加快開發和部署速度。
另外 Cloud Run 還有分成 Service 跟 Job 兩種模式
獨立的 HTTPS Endpoint
Google 會為每個 Cloud Run Service 提供一個 HTTPS 的 Endpoint,當然你也可以使用自行定義的Domain。Cloud Run 會為你管理 TLS 等傳輸加密的問題,而且也支援 WebSocket、HTTP/2 或是 gRPC。
Auto Scaling
Cloud Run Service 是基於 Request 來做 Auto Scaling 最大可以到同時並行 1000 個 Instance,如果 Request 數量下降它也會自動減少 Instznce 數量,當然你可以對 Instance 數量做限制確保你的荷包不會被榨乾。
流量管理
每部屬一次 Clour Run 都會是一個新的 Version,你可以針對不同的 Version 進行流量的轉導來實現不同的 Rollout 或 Rollbasck 方法。
根據以上的特性 Cloud Run Service 適合 Web Application,API或微服務。
如果你的程式只有單一個任務執行完畢就結束了這種場景就很適合用 Job,你可以使用 Scheduler 或 Workflow 來觸發 Clud Run Job。
Job 可以同時並行多個獨立的 Instance 來處理 Task 來達到更高的效率,假釋你要對1000張圖片進行大小調整和裁切,這些任務是相互獨立的並行處理絕對比依序處理快的多。
Cloud Run Job 適合運行一些類似Script 的獨立單一任務,需要注意的是截至目前(2024/09) Job 最多可運行 1 天,如果你有大型 Script 或是 ETL 會運行超過一天,可能不是合適使用 Job 來執行或是要對你的任務作拆解。
https://cloud.google.com/run/docs/overview/what-is-cloud-run
能不能問下智障的問題
這個和GAE 有何差別?
謝謝!
App Engine 相對 Cloud Run 沒有那麼靈活
Cloud Run 推出其實就是來取代 App Engine 的,在 App engine 的介紹就可以看到它直接放了一個導流到 Cloud Run 的連結 XD
Cloud Run 相對 GAE 更靈活費用又更低,除非有什麼特殊的情況才會選擇 GAE,我目前是沒有想到有什麼情況是 GAE 可以但 Cloud Run 不行的情境。
原來是這樣,那我要來研究一下Cloud Run了,之前用GAE是覺得很方便,直接上傳就可以跑了....